import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 言初
 * Date: 2022-11-03
 * Time: 21:59
 */
public class Test {
    public static void printArray(int[] array)
    {
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
    public static void main8(String[] args) {
        //实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
        int[] array={1,2,3,4,5,6,7,8};
        printArray(array);
    }
    public static void main7(String[] args) {
        int[] arr=new int[100];
        for(int i=0;i<100;i++)
        {
            arr[i]=i+1;
            System.out.println(arr[i]);
        }
        //创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
    }
    //汉诺塔问题的理解还不是很透彻，还有点不太理解的地方
    public static void Hannuota(int n,char a,char b,char c)
    {
        if(n==1)
        {
            Move(a,c);
        }
        //就是把a上面的 的n-1个移到b上面去,然后把a上面的最后一个移到c上面去以此类推
        else
        {
            Hannuota(n-1,a,c,b);
            Move(a,c);
            Hannuota(n-1,b,a,c);
        }

    }
    public static void Move(char a,char b)
    {
        System.out.print(a+"->"+b+" ");
    }
    public static void main6(String[] args) {
        //递归求解汉诺塔问题
        Hannuota(3,'a','b','c');
    }
    public static int fib(int n)
    {
        if(n==1||n==2)
        {
            return 1;
        }
        if(n==0)
        {
            return 0;
        }
        return fib(n-1)+fib(n-2);
    }
    public static void main5(String[] args) {
        //递归求斐波那契数列的第 N 项
        System.out.println(fib(8));//21
        System.out.println(fib(4));//3
    }
    public static int addInt(int n)
    {
        if(n==0)
        {
            return 0;
        }
        return n%10+addInt(n/10);
    }
    public static void main4(String[] args) {
        //写一个递归方法，输入一个非负整数，返回组成它的数字之和
        int n=addInt(1234);
        System.out.println(n);
    }
    public static void print(int n)
    {
        if(n==0)
        {
            return;
        }
        print(n/10);
        System.out.println(n%10);
    }
    public static void main3(String[] args) {
        //按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) （递归）
        print(1234);
    }
    public static int add(int n)
    {
        //递归求 1 + 2 + 3 + ... + 10
        if(n==1)
        {
            return 1;
        }
        return n+add(n-1);
    }
    public static void main2(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int nn=add(n);
        System.out.println(nn);
        sc.close();
    }
    public static int tool(int n)
    {
        if(n==1)
        {
            return 1;
        }
        return n*tool(n-1);
    }
    public static void main1(String[] args) {
        //递归求 N 的阶乘
        //Scanner sc = new Scanner(System.in);
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int nn=tool(n);
        System.out.println(nn);
        sc.close();
    }
}
